The internet is a communication system that interconnects the world. The internet has been structured to provide connectivity to billions of users with laptops, notebooks, desktops, Internet Enabled TV sets, cellular phones, smartphones like the IPHONE™ ANDROID™ and BLACKBERRY™, wearable devices, and tablets. The internet 1-3 connects a Client Device 1-2 to a server 1-4 and the server to the same Client Device as illustrated in 1-1 of FIG. 1A or to another Client Device (not illustrated). The Client Device 1-2 can have at least one display screen 1-8 that can be a touch sensitive screen, pen based or both. The screen can display various icons or be attached to a physical keypad 1-9. As illustrated in 1-1, the Client Devices are physical and can be either mobile, such as cellular phones, smartphones, wearable devices, and tablets, or non-mobile, such as laptops, desktops, and TV sets, The Client Devices 1-2 are coupled to the internet by wired (a physical interconnect), wirelessly (waves through space), or both wired/wireless networks. The wireless connectivity can be cellular (3G, 4G, etc.), Wi-Fi, Bluetooth, WiMax, etc. The Client Device 1-2 runs the Application Client which is the actual application software running on device.
FIG. 1A also shows an Application Store 1-10 connected to the Internet. The Application Store 1-10 makes application clients available for download to the Client Devices. There is a plurality of Application Stores, each of the Application Stores dedicated to make available for download Application Clients for a certain type of Client Device or Client Device Operating System. For example, the APPLE™ Application Store makes Application Clients for the IPHONE™ and IPAD™ available for download, the ANDROID™ Application Store makes Application Clients for smartphones and tablets running the ANDROID™ Operating System available for download, etc. There are Application Stores dedicated to support mobile Client Devices (for example, the IPHONE™/IPAD™ APPLE™ Application Store, the BLACKBERRY™ Application Store, etc.), and Application Stores dedicated to support non-mobile Client Devices (for example, the MAC™ APPLE™ Application Store, which makes applications for APPLE™ computers running the MAC™ Operating System available for download).
The Cloud uses the network of the internet to offer services to users by using a combination of hardware and software embedded in the network. For example, ADOBE™ and MICROSOFT™ offer the ability of using their software programs via the Cloud, while other companies offer storage capabilities via the Cloud to their customers. An Application Client can be in the Cloud, but in this case the Client Device is a “virtual” Client Device. The “virtual” Client Device has a way to provide access to the Application Client running in the cloud via a physical Client Device. For example, as in the example listed in 1-5 of FIG. 1B, a web browser 1-6 running on the physical Client Device 1-2 and coupled to the client/server 1-7 in the Cloud via the Internet accesses the Application Client running in the Cloud, which performs the actual application software. For the Cloud, there are two cases: the entire Application Client runs in the Cloud, or a small portion of the Application Client runs on a physical Client Device while most of the logic runs in the Cloud.
FIG. 2A illustrates a system 2-1 with the hardware 2-16 and software 2-15 of a Client Device 1-2. The Client Device 1-2 is coupled to the Internet 1-3 via wireline connection or Radio Frequency (RF) wireless transmission network (wired/wireless) 2-2 and further coupled to a bank of servers 2-4 via a second interconnection 2-3 that can be wired or wireless. The communication link is a receiver and a transmitter known as a transceiver and is coupled to either a wired connector or an antenna (not illustrated) for the wireline connection or RF wireless transmission network, respectively. In general, these links: wired, wireless, cellular, internet, etc. are called the Communication network. The Communication network couples all components together. The server's bank 2-4 comprises server-0 2-11 to server-N 2-12. The bank contains at least one server and these servers can be localized, coupled by an Intranet, or be physically separated from one another, coupled by the Internet. The Operating System (OS) 2-13 running in the Client Device is closely coupled with the hardware 2-16, especially in case of Mobile Client Devices 1-2. The hardware 2-16 comprises at least one processor 2-5 operating under the Operating System 2-13. The processor 2-5 is coupled to at least one memory 2-7 and at least one communication link 2-9 via at least one bus 2-8. At least one communication link 2-9 couples the Client Device to the outside world through a wired and/or wireless interconnection via the transceiver. The Client Device offers the user at least one mode of input and one mode of output. One mode of input to the Client Device 1-2 is via the touch based keypad 2-6 or through voice control (not illustrated). The screen 2-10 can be a touch sensitive screen and provide a second mode of input. The screen 2-10 can provide an output response or sound can provide a second mode of output known as voice output (not illustrated). Other hardware components such as MEMS, power supplies, etc. are not mentioned but are well-known by those skilled in the art. A set of applications or Application Clients 2-14 run on the Client Device are coupled to the Operating System 2-13. The Client Device is one of a plurality of Client Devices coupled to the Internet 1-3. An Application Store 1-10 is connected 2-21 to the Internet.
FIG. 2B illustrates that when the term server 2-20 is used, this server is a sub-set representation of a Computer hardware 2-17, which can contain software 2-18, a database 2-19 and the server 2-20 itself. Other components not illustrated are the memory, power supply, etc. One skilled in the art is knowledgeable of other components contained in this device and will not be described further. All servers used in this specification are substantially the same as the server 2-20. Furthermore, a plurality of servers and a plurality of databases can be embedded in the Computer hardware 2-17.
The term “Client Device” encompasses the device being Mobile, Non-Mobile, or located in the Cloud. However, in some cases, for further distinction within this document the term “Mobile Client Device” will be used for mobile devices, “Non-Mobile Client Device” will be used for non-mobile devices and “Cloud Client Device” will be used for the device formed in the Cloud.
FIG. 3A and FIG. 3B present two different types of Application Clients. This distinction is especially relevant in the case of mobile Client Devices, but is also applicable to non-mobile Client Devices. FIG. 3A shows a Native Application Client 3-1 and how it relates to the layered stacks of the hardware/software representation of a Client Device 1-2. The Native Application Client 3-1 is an executable which runs directly on the Operating System 2-13 of the Client Device 1-2, which in turn runs on the hardware 2-16 of the Client Device 1-2. The Operating System 2-13 provides a set of system libraries 3-5, which the Native Application Client uses 3-2. The Native Application Client 3-1 is compiled to run on the Operating System of the Client Device. The Native Application Client needs to be downloaded to the Client Device and installed on the Client Device in order to run on the Client Device.
FIG. 3B shows a Non-Native Application Client 3-1h and how it relates to the layered stacks of the hardware/software representation of a Client Device 1-2a. The Non-Native Application Client 3-1h does not run directly on the Operating System 2-13h of the Client Device, but instead uses a web browser 3-3 installed on the Client Device in order to run. The Non-Native Application Client 3-1h is written in a programming language that is understood by the web browser running on the Client Device. The most common example of such a language is HTML5. The web browser running on the Client Device contains a HTML5 parser 3-4 that is used to interpret the code of the Non-Native Application Client 3-1h. The Non-Native Application Client 3-1h does not depend on the Client Device 1-2a since it does not run directly on the Operating System 2-13h but instead uses the web browser 3-3 running on the Client Device 1-2a. The Non-Native Application Client 3-1h can run on any Client Device 1-2a that runs a web browser 3-3 capable of understanding the language which the Non-Native Application Client is written in. The web browser 3-3 may depend on the Client Device 1-2a, but the Non-Native Application client does not depend on the Client Device. The Operating System 2-13h runs on the hardware 2-16h. 
An approval and download process in the Application Store is illustrated in FIG. 4A. A Business Entity 4-1 creates a new application which comprises a new Native Application Client 3-1. The new Native Application Client 3-1 is submitted 4-3 to the Application Store 1-10 for an approval process 4-4. Once the new Native Application Client is accepted 4-5, information is passed to the Application Store 1-10 to make the new Native Application Client available for download and installation 4-6 into a Client Device 1-2. A Client Device 1-2 which desires the Native Application Client 3-1 downloads the Native Application Client from the corresponding Application Store 1-10. For example, an IPHONE™ downloads its desired Native Application Client from the APPLE™ Application Store, an ANDROID™ device downloads its desired Native Application Client from the ANDROID™ Application Store, etc. Once the Native Application Client is downloaded to the Client Device, it is installed on the Client Device so it can run on the Operating System of the Client Device. The client now contains a “native” application coupled to the Operating System 2-13 (see FIG. 2A and FIG. 3A) of the Client Device. The Native Mobile Application Client executable depends on the Operating System (OS) as an iPhone would require a different executable than an ANDROID™ phone.
If the Business Entity 4-1 makes a change to the Native Application Client 3-1 as illustrated in FIG. 4B, the Updated Native Application Client 4-7 must be re-submitted 4-8 to the Application Store approval process 4-4 and re-accepted 4-9 in order for the updated Native Application Client to be made available in the Application Store 1-10 for download and installation 4-10. A Client Device 1-2 which desires the updated Native Application Client 4-7 must download 4-10 the updated Native Application Client again from the Application Store 1-10 and re-install the Native Application Client on the Client Device 1-2. The process of updating an existing Native Application Client takes considerable time and effort. The Business Entity 4-1 must re-submit the Native Application Client to the Application Store, which requires considerable time and effort since the submission procedure is typically laborious and time-consuming. The Application Store must expend funds to re-approve the new executable and the approval process may take considerable time. Once accepted, the store must distribute the new Native Application Client to the Client Device. A Client Device 1-2 which desires the updated Native Application Client must go back to the Application Store 1-10 and download the updated version of the Native Application Client and re-install it on the Client Device 1-2. The existing Native Application Client 3-1, if running on the Client Device 1-2, must be stopped and deleted from the memory of the Client Device 1-2 in order for the updated Native Application Client 4-10 to be installed on the Client Device 1-2. An existing Native Application Client 3-1 cannot be updated while it is running on the Client Device 1-2. An existing Native Application Client 3-1 cannot manage the update process, but must rely on an update manager or an external installation manager software or update manager software running on the Operating System of the Client Device to delete the existing Native Application Client, download and re-install the updated Native Application Client 4-7, and complete the update process.